home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Software Contest 3 / FM Towns Software Contest 3.iso / exp / video_t / no1 / c_sorse / tiff2.c < prev    next >
Text File  |  1994-01-07  |  8KB  |  342 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9.  
  10. int    Dialog_tiff = -1 ;
  11. int    DButton_tiff = -1 ;
  12. int    DButton_009f = -1 ;
  13. int    DButton_00a1 = -1 ;
  14. int    _001Message_00a5 = -1 ;
  15. int    _002Message_00a5 = -1 ;
  16. int    Message_00a5 = -1 ;
  17. int    Message_00a3 = -1 ;
  18. int    _001Message_00a3 = -1 ;
  19. int    TIcon_tiff[2] = -1 ;
  20. int    _002Message_00a3 = -1 ;
  21. int    _003Message_00a3 = -1 ;
  22. int    Text_009b = -1 ;
  23. int    DButton_00aa = -1 ;
  24. int    _001DButton_00aa = -1 ;
  25. int    _002DButton_00aa = -1 ;
  26. int    Message_00bd = -1 ;
  27. int    _001Message_00bd = -1 ;
  28. int    _002Message_00bd = -1 ;
  29. int    DButton_10c3 = -1 ;
  30. int    Message_00c5 = -1 ;
  31.  
  32. int    radiotiff = 0 ;
  33.  
  34. extern     int    backid ;
  35. extern int    Dia_edit ;
  36. extern int    Dialog_menu ;
  37. extern int    Text ;
  38. extern void    tiff();
  39. extern     char    *guiEgbPtr ;
  40. extern    char    *getgraph;
  41. extern    void    memory_error();
  42. extern    int    menud;
  43.  
  44. /*    initDataTIFF:DButton_00aa:MJ_DBUTTONL40の呼び出し関数    */
  45. int    tiff_past(kobj, messId, argc, pev, trigger)
  46. int        kobj ;
  47. int        messId ;
  48. int        argc ;
  49. EVENT    *pev ;
  50. int        trigger ;
  51. {
  52. MMI_SendMessage(Text_009b, MM_PASTE, 0) ;
  53.     return NOERR ;
  54. }
  55.  
  56. /*    initDataTIFF:_001DButton_00aa:MJ_DBUTTONL40の呼び出し関数    */
  57. int    tiff_del(kobj, messId, argc, pev, trigger)
  58. int        kobj ;
  59. int        messId ;
  60. int        argc ;
  61. EVENT    *pev ;
  62. int        trigger ;
  63. {
  64. MMI_SendMessage(Text_009b, MM_CUT, 0) ;
  65.     return NOERR ;
  66. }
  67.  
  68. /*    initDataTIFF:_002DButton_00aa:MJ_DBUTTONL40の呼び出し関数    */
  69. int    tiff_copy(kobj, messId, argc, pev, trigger)
  70. int        kobj ;
  71. int        messId ;
  72. int        argc ;
  73. EVENT    *pev ;
  74. int        trigger ;
  75. {
  76. MMI_SendMessage(Text_009b, MM_COPY, 0) ;
  77.     return NOERR ;
  78. }
  79.  
  80. /*    initDataTIFF:DButton_10c3:MJ_DBUTTONL40の呼び出し関数    */
  81. int    tiff_fail(kobj, messId, argc, pev, trigger)
  82. int        kobj ;
  83. int        messId ;
  84. int        argc ;
  85. EVENT    *pev ;
  86. int        trigger ;
  87. {
  88. unsigned int    MSlctCnt;
  89. unsigned int    InfSw;
  90. int    i;
  91. int    BaseID;
  92. int    Stat;
  93. int    Atr;
  94. int    BtnID[3];
  95. int    MsgID[3];
  96. FRAME Frm;
  97. char    *data;
  98. char    pathname[400];
  99. static char *ExtStr[]={"*.TIF",NULL};
  100. static FONTTYPE type={1,12,12,MS_NONEL40,0,0};
  101. /*    メニューを選択不可とします。    */
  102. MTL_setAtrObj(Dialog_tiff, MS_DSPONLYL40) ;
  103.  
  104. FDG_SaveCurDir();
  105. FDG_InitFileDlg();
  106. FDG_SetTitle("画像・複数選択","選択","取消");
  107. FDG_GetFrame(&Frm);
  108. BaseID=FDG_GetMainID();
  109. /*InfSw = FDG_MSLCT;*/
  110. Frm.lupx+=20;
  111. Frm.lupy+=20;
  112. FDG_SetFrame(Frm);
  113. Stat=FDG_DspFileDlg(MMI_GetBaseObj(),FDG_MSLCT,NULL,ExtStr,&MSlctCnt);
  114. if(Stat)
  115.     {
  116.     for(i=0;i<MSlctCnt;i++)
  117.         {
  118.         FDG_GetPathName(pathname,&Atr,i);
  119.         MMI_SendMessage(Text_009b,MM_SETTEXT,3,pathname,256,TRUE) ;
  120.         MMI_SendMessage(Text_009b,MM_SETTEXT,3,"\n",5,TRUE) ;
  121.  
  122.         }
  123.     }
  124. FDG_FreeFileDlg();
  125. FDG_RecovCurDir();
  126. /*    メニューを選択可とします。    */
  127. MTL_resetAtrObj(Dialog_tiff, ~MS_DSPONLYL40) ;
  128. MMI_SendMessage(Text_009b, MM_ERASE, 0) ;
  129. MMI_SendMessage(Text_009b, MM_WAKE, 0) ;
  130. MMI_SendMessage(Text_009b, MM_SHOW, 0) ;
  131.  
  132.     return NOERR ;
  133. }
  134.  
  135.  
  136. int    count;
  137. extern    char    wdata2[100][160];    /*  セーブTIFF データ  */
  138. extern    char    wzahyo[100][30];    /*  セーブTIFF データ  */
  139.  
  140. /*    initDataTIFF:DButton_tiff:MJ_DBUTTONL40の呼び出し関数    */
  141. int    tiff_on(kobj, messId, argc, pev, trigger)
  142. int        kobj ;
  143. int        messId ;
  144. int        argc ;
  145. EVENT    *pev ;
  146. int        trigger ;
  147. {
  148. int    i,iii;
  149. for (iii = 0 ; iii < 2 ; iii++)
  150. {
  151. if (TIcon_tiff[iii] == radiotiff)        break ;
  152. }
  153.  
  154. if(iii==1)
  155.     {
  156.     MMI_SendMessage(Text,MM_SETTEXT,3,"/GMODE 6",100,TRUE) ;
  157.     MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
  158.     }
  159.  
  160. if(count!=0)
  161.     {
  162.     /*    メニューを選択可とします。    */
  163.     MTL_resetAtrObj(backid, ~MS_DSPONLYL40) ;
  164.     MTL_resetAtrObj(Dialog_menu, ~MS_DSPONLYL40) ;
  165.     MTL_resetAtrObj(Dia_edit, ~MS_DSPONLYL40) ;
  166.     for(i=0;i<count;i++)
  167.         {
  168.         MMI_SendMessage(Text,MM_SETTEXT,3,wdata2[i],400,TRUE) ;
  169.         MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
  170.         MMI_SendMessage(Text,MM_SETTEXT,3,wzahyo[i],400,TRUE) ;
  171.         MMI_SendMessage(Text,MM_SETTEXT,3,"\n",5,TRUE) ;
  172.         }
  173.     MMI_SendMessage(Dialog_tiff,MM_ERASE,0) ;
  174.     MMI_SendMessage(Dialog_tiff,MM_DETACH,0) ;
  175.     MMI_SendMessage(Text, MM_ERASE, 0) ;    
  176.     MMI_SendMessage(Text, MM_SHOW, 0) ;
  177.     MMI_SendMessage(Text, MM_WAKE, 0) ;
  178.     }
  179. return NOERR ;
  180. }
  181.  
  182.  
  183. extern     char    *pwork;
  184. char *gwork;        /*  グラフィックデータのポンイタ*/
  185.  
  186. /*    initDataTIFF:DButton_009f:MJ_DBUTTONL40の呼び出し関数    */
  187. int    tiff_kaku(kobj, messId, argc, pev, trigger)
  188. int        kobj ;
  189. int        messId ;
  190. int        argc ;
  191. EVENT    *pev ;
  192. int        trigger ;
  193. {
  194. int    i,ii,iii;
  195. char    tensou[300];
  196. TEHandle    *gte;
  197. int    line;
  198. char    *tdata;
  199.  
  200. /*    メニューを選択不可とします。    */
  201. MTL_setAtrObj(Dialog_tiff, MS_DSPONLYL40) ;
  202.  
  203. if((  tdata = (char *)TL_malloc(10*1024+8)+4)==NULL)
  204.     {
  205.     memory_error();
  206.     return -1;
  207.     }
  208.  
  209. if((gwork = (char *)TL_malloc( 512*1024+8)+4)==NULL)    
  210.     {
  211.     TL_free(tdata-4);
  212.     memory_error();
  213.     return -1;
  214.     }
  215. if((getgraph = (char *)TL_malloc( 512*1024+8)+4)==NULL)
  216.     {
  217.     TL_free(gwork-4);
  218.     TL_free(tdata-4);
  219.     memory_error();
  220.     return -1;
  221.     }          /* グラフイック取り込み */
  222.  
  223. MMI_SendMessage(Text_009b, MM_GETTEXT, 3,  tdata,10*1024,0) ;
  224.  
  225. MG_pushEgbWork(guiEgbPtr,&pwork);
  226. for (iii = 0 ; iii < 2 ; iii++)
  227. {
  228. if (TIcon_tiff[iii] == radiotiff)        break ;
  229. }
  230.  
  231. MMI_SendMessage(Text_009b,MM_GETTEHANDLE, 1, >e);
  232. TE_GetTextLine2(gte,&line);
  233.  
  234. menud = -1;
  235. if(iii==1)    gamen6();
  236.  
  237. count=0;
  238. int    err;
  239. for(ii=0;ii<10*1024;ii++)
  240.     {
  241.     for(i=0;i<240;i++)
  242.         {
  243.         tensou[i]=  tdata[ii];
  244.         if((  tdata[ii]==0x0d)||(  tdata[ii]==0x00))    
  245.             {
  246.             tensou[i]='\0';    
  247.             ii++;
  248.             break;    
  249.             }
  250.         ii++;
  251.         }
  252.     err=_access(tensou,0);
  253.     if(err==0)
  254.         {
  255.         tiff(tensou,count);
  256.         count++;
  257.         wait();
  258.         }
  259.     if(  tdata[ii]==0x00)    break;
  260.     }
  261.  
  262. TL_free(getgraph-4);
  263. TL_free(gwork-4);
  264. TL_free(tdata-4);
  265. gamen2();
  266. MG_popEgbWork(guiEgbPtr,pwork);
  267. WINCLIP *pwclp ;
  268. FRAME   fr ;
  269. fr.lupx = 0 ;
  270. fr.lupy = 0 ;
  271. fr.rdwx = 639 ;
  272. fr.rdwy = 479 ;
  273. pwclp = WIN_getClipMemory(&fr, NULL) ;
  274. MMI_SendMessage(MMI_GetBaseObj(), MM_UPDATE, 1, pwclp) ;
  275. WIN_freeClipMemory(pwclp) ;
  276. /*    メニューを選択可とします。    */
  277. MTL_resetAtrObj(Dialog_tiff, ~MS_DSPONLYL40) ;
  278. return NOERR ;
  279. }
  280.  
  281.  
  282. /*    initDataTIFF:DButton_00a1:MJ_DBUTTONL40の呼び出し関数    */
  283. int    tiff_off(kobj, messId, argc, pev, trigger)
  284. int        kobj ;
  285. int        messId ;
  286. int        argc ;
  287. EVENT    *pev ;
  288. int        trigger ;
  289. {
  290.  
  291. MMI_SendMessage(Dialog_tiff,MM_ERASE,0) ;
  292. MMI_SendMessage(Dialog_tiff,MM_DETACH,0) ;
  293. /*    メニューを選択可とします。    */
  294. MTL_resetAtrObj(Dialog_menu, ~MS_DSPONLYL40) ;
  295. MTL_resetAtrObj(Dia_edit, ~MS_DSPONLYL40) ;
  296. MTL_resetAtrObj(backid, ~MS_DSPONLYL40) ;
  297.  
  298.     return NOERR ;
  299. }
  300.  
  301.  
  302.  
  303. /*    initDataTIFF:TIcon_tiff[0]:MJ_TICONL40の呼び出し関数    */
  304. /*    initDataTIFF:TIcon_tiff[1]:MJ_TICONL40の呼び出し関数    */
  305. int    tiff_check(kobj, messId, argc, pev, trigger)
  306. int        kobj ;
  307. int        messId ;
  308. int        argc ;
  309. EVENT    *pev ;
  310. int        trigger ;
  311. {
  312. /*    現在選択状態にあるボタンを非選択状態にし、選択可にします    */
  313. MTL_resetFlagObj(radiotiff,~(MS_UNSELECT | MS_TOGGLE)) ;
  314. MMI_SendMessage(radiotiff, MM_SHOW, 0) ;
  315. /*    画面選択フラグを更新します    */
  316. radiotiff = kobj ;
  317.  
  318. /*    呼び出し元トグルボタンを選択状態にし、選択不可にします    */
  319. MTL_setFlagObj(kobj, MS_UNSELECT | MS_TOGGLE) ;
  320. MMI_SendMessage(kobj, MM_SHOW, 0) ;
  321.  
  322. return NOERR ;
  323. }
  324.  
  325.  
  326. int    l_tiff()
  327. {
  328. /*    背景を選択不可とします。*/
  329. MTL_setAtrObj(backid, MS_DSPONLYL40) ;
  330. MTL_setAtrObj(Dialog_menu, MS_DSPONLYL40) ;
  331. MTL_setAtrObj(Dia_edit, MS_DSPONLYL40) ;
  332.  
  333. MMI_SendMessage(Dialog_tiff,MM_ATTACH,1,MMI_GetBaseObj()) ;
  334. MMI_SendMessage(Dialog_tiff, MM_SHOW, 0) ;
  335.  
  336. MMI_SendMessage(Text_009b, MM_SHOW, 0) ;
  337. MMI_SendMessage(Text_009b, MM_WAKE, 0) ;
  338.  
  339. return NOERR ;
  340. }
  341.  
  342.